#include <stdio.h>
#include <math.h>

#define STDIN
//#define DEBUG

typedef short int bool;
#define true	1
#define false	0

short int prime[100001][2];
int m, a, b;
int p, q;

bool isPrime(int n)
{
    if (prime[n][1] == true)
        return prime[n][0] == true;
    if (n == 1 || n == 2 || n == 3)
    {
        prime[n][0] = true;
        prime[n][1] = true;
        return true;
    }
    if (n % 2 == 0)
    {
        prime[n][0] = false;
        prime[n][1] = true;
        return false;
    }

    int up = sqrt(n);
    int i = 0;
    for (i = 2; i <= up; ++i)
    {
        if (n % i == 0)
        {
            prime[n][0] = false;
            prime[n][1] = true;
            return false;
        }
    }
    prime[n][0] = true;
    prime[n][1] = true;
    return true;
}

void doProcess()
{
#ifdef DEBUG
    printf("%d %d %d\n", m, a, b);
#endif
    int max_q = sqrt(1.0 * m * b / a);
    int max = 0, select_p = 0, select_q = 0;

    int qx, px;
    for (qx = max_q; qx >= 1; qx--)
    {
        if (isPrime(qx) == false)
            continue;
        for(px = ceil(1.0*a/b*qx); px <= qx && px >= 1; ++px)
        {
            if (isPrime(px) == false)
                continue;
            if (px * qx > m)
                continue;
            if (max < px * qx)
            {
                max = px * qx;
                select_p = px;
                select_q = qx;
            }
            //printf("%d %d\n", px, qx);
        }
    }
    printf("%d %d\n", select_p, select_q);

}

int main()
{
#ifdef STDIN
    freopen("bin/1411.in", "r", stdin);
#endif

    do
    {
        scanf("%d %d %d", &m, &a, &b);

        if (m == 0 && a == 0 && b == 0)
            break;
        doProcess();
    }while(1);
    return 0;
}
